#pragma once            // 防止头文件重复包含
#include <worker.hpp>

#include <iostream>
#include <boss.hpp>
#include <employee.hpp>
#include <manager.hpp>
#include <limits>
#include <fstream>

namespace System
{
    class WorkerManager
    {
    private:
        /* data */
    public:
        WorkerManager(/* args */);
            void init_Emp();                        
        ~WorkerManager();
        
        bool m_FileIsEmpty;                     // 判断文件是否为空的标志位
        int m_EmpNum;                           // 记录职工人数                 
        name_Worker::Worker ** m_EmpArray{};    // 记录职工信息的数组

        static void ExitSystem();              
        static void Show_Menu();

        /* 增删改查 */

        void Add_Emp();                  
        void Del_Emp();                         
        void Mod_Emp();                        
        void Find_Emp();

        void Sort_Emp();
        void Clean_File();                 

        /* 辅助函数 */

        void save_File();                      
        int get_EmpNum();                     
        void Show_Emp();                    
        int IsExist(int id);

        /* 清屏操作 */
        
        void clear();                           
    };
} // namespace System
